package com.itheima.demo;

import java.util.Arrays;
import java.util.Scanner;

public class Test05 {
    public static void main(String[] args) {
        //在唱歌比赛中，有6名评委给选手打分，分数范围是[0-100]之间的整数。
        //选手的最后得分为:去掉最高分、最低分后的4个评委的平均分，请完成上述过程并计算出选手的得分。

        //1.获取分数，通过键盘打分
        int[] scoreList = getScore();
        //2.获取最大值
        int maxScore = getMax(scoreList);
        //3.获取最小值
        int minScore = getMin(scoreList);
        //4.求出所有分数总和
        int sumScore = getSum(scoreList);
        //5.最后得分 = （总分 - 最大值 -最小值）/ 4
//        int result = (sumScore - maxScore - minScore) / 4;//修改前
        int result = (sumScore - maxScore - minScore) / (scoreList.length - 2);//修改后

        System.out.println("最终得分：" + result + "分");

    }

    //获取评委打分
    public static int[] getScore() {
        Scanner sc = new Scanner(System.in);
        //定义分数数组,用于存在6个评委打的分数
        int[] scores = new int[6];
        for (int i = 0; i < scores.length; ) {
            System.out.println("请输入分数:");
            int score = sc.nextInt();
            //判断输入的分数是否是0-100的正整数,如果是就存入数组，并把i++,如果不是就继续提示输入
            if (score >= 0 && score <= 100) {
                scores[i] = score;
                i++;
            }
        }
        return scores;
    }

    //获取数组最大值
    public static int getMax(int[] scoreList) {
        int max = scoreList[0]; //初始化，默认取数组的第一个值
        for (int i = 1; i < scoreList.length; i++) { //i从1开始减少一次循环比较，提升性能
            if (scoreList[i] > max) {
                max = scoreList[i];
            }
        }
        return max;
    }

    //获取数组最小值
    public static int getMin(int[] scoreList) {
        int min = scoreList[0]; //初始化，默认取数组的第一个值
        for (int i = 1; i < scoreList.length; i++) { //i从1开始减少一次循环比较，提升性能
            if (scoreList[i] < min) {
                min = scoreList[i];
            }
        }
        return min;
    }

    //获取数组总和
    public static int getSum(int[] scoreList) {
        int sum = 0;
        for (int i = 0; i < scoreList.length; i++) {
            sum += scoreList[i];
        }
        return sum;
    }
}













